//package com.yuke.cloud.zuul.filter;
//
//import com.netflix.zuul.ZuulFilter;
//import com.netflix.zuul.context.RequestContext;
//import com.netflix.zuul.exception.ZuulException;
//import com.yuke.cloud.common.base.enums.ErrorCodeEnum;
//import com.yuke.cloud.common.base.exception.BusinessException;
//import com.yuke.cloud.common.util.PublicUtil;
//import com.yuke.cloud.zuul.util.HttpUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.http.HttpHeaders;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.http.HttpServletRequest;
//
//@Slf4j
//@Component
//public class DelAuthHeaderFilter extends ZuulFilter {
//
//    private static final String MALL_PATH = "/mall";
//
//
//    /**
//     * Filter type string.
//     *
//     * @return the string
//     */
//    @Override
//    public String filterType() {
//        return "pre";
//    }
//
//    /**
//     * Filter order int.
//     *
//     * @return the int
//     */
//    @Override
//    public int filterOrder() {
//        return -4;  // 最先执行，原始过滤器中最先执行的为-3
//    }
//
//    /**
//     * Should filter boolean.
//     *
//     * @return the boolean
//     */
//    @Override
//    public boolean shouldFilter() {
//        return true;
//    }
//
//    /**
//     * Run object.
//     *
//     * @return the object
//     */
//    @Override
//    public Object run() {
//        RequestContext requestContext = RequestContext.getCurrentContext();
//        doSomething(requestContext);
//
//        return null;
//    }
//
//    private void doSomething(RequestContext requestContext) {
//        HttpServletRequest request = requestContext.getRequest();
//        String requestURI = request.getRequestURI();
//
//        //add by wg 20190107 对包含/mall的请求，由于不需要token认证，如果header中包含了token，则去掉
//        if (requestURI.contains(MALL_PATH)) {
//            String authHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
//            if (PublicUtil.isEmpty(authHeader)) {
//                authHeader = request.getHeader("authorization");
//            }
//            if (PublicUtil.isNotEmpty(authHeader)) {
//                HttpUtil.delReqHeader(request, HttpHeaders.AUTHORIZATION);
//            }
//        }
//    }
//}
